[INFO] fetching crate docchi_fs 0.8.0...
[INFO] checking docchi_fs-0.8.0 against try#a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399 for pr-145770
[INFO] extracting crate docchi_fs 0.8.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate docchi_fs 0.8.0
[INFO] finished tweaking crates.io crate docchi_fs 0.8.0
[INFO] tweaked toml for crates.io crate docchi_fs 0.8.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate docchi_fs 0.8.0 on toolchain a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 49 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e51995967463718d61e5d0983f09784ba4ccc14a321e97d0ab6ca10cc3a00987
[INFO] running `Command { std: "docker" "start" "-a" "e51995967463718d61e5d0983f09784ba4ccc14a321e97d0ab6ca10cc3a00987", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e51995967463718d61e5d0983f09784ba4ccc14a321e97d0ab6ca10cc3a00987", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e51995967463718d61e5d0983f09784ba4ccc14a321e97d0ab6ca10cc3a00987", kill_on_drop: false }`
[INFO] [stdout] e51995967463718d61e5d0983f09784ba4ccc14a321e97d0ab6ca10cc3a00987
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0f8a8de41d7b01b1f4f13c0f69d1e234f6e1520b2ef2d6c1e3290cde2c0caedc
[INFO] running `Command { std: "docker" "start" "-a" "0f8a8de41d7b01b1f4f13c0f69d1e234f6e1520b2ef2d6c1e3290cde2c0caedc", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking with_capacity_safe v0.4.2
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking metrohash v1.0.7
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]     Checking pest v2.8.1
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]     Checking docchi_compaction v0.8.0
[INFO] [stderr]     Checking docchi_archiver2 v0.8.0
[INFO] [stderr]    Compiling pest_meta v2.8.1
[INFO] [stderr]    Compiling pest_generator v2.8.1
[INFO] [stderr]    Compiling pest_derive v2.8.1
[INFO] [stderr]     Checking docchi_json5 v0.8.0
[INFO] [stderr]     Checking docchi_core v0.8.0
[INFO] [stderr]     Checking docchi_diff v0.8.0
[INFO] [stderr]     Checking docchi_fs v0.8.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `tempfile`
[INFO] [stdout]  --> src/test_fs/save_test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tempfile::tempdir;
[INFO] [stdout]   |     ^^^^^^^^ use of unresolved module or unlinked crate `tempfile`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tempfile`, use `cargo add tempfile` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_simple_diff_files.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_nth.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_count.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0_with_cumu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_load_and_save.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/simple_diff/sd_data.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::{thread_rng, Rng};
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 39 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 59 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:70:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 70 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 73 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:76:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 76 |         let a = get_int(p, "added")?;
[INFO] [stdout]    |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:31:38
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 31 |             if *self.bytes.get(index)? == 0{ break; }
[INFO] [stdout]    |                                      ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:36:52
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 36 |             *self.bytes.get_mut(index + n as usize)? = num;
[INFO] [stdout]    |                                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `FsError`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:69:78
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Err(anyhow!("error index {} is out of bound len {}", index, len))?
[INFO] [stdout]    |             -----------------------------------------------------------------^ the trait `From<anyhow::Error>` is not implemented for `FsError`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this can't be annotated with `?` because it has type `Result<_, anyhow::Error>`
[INFO] [stdout]    |
[INFO] [stdout] note: `FsError` needs to implement `From<anyhow::Error>`
[INFO] [stdout]   --> src/error.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FsError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `FsError` implements `From<&str>`
[INFO] [stdout]              `FsError` implements `From<ComError>`
[INFO] [stdout]              `FsError` implements `From<CoreError>`
[INFO] [stdout]              `FsError` implements `From<DiffError>`
[INFO] [stdout]              `FsError` implements `From<NouArcError>`
[INFO] [stdout]              `FsError` implements `From<SystemTimeError>`
[INFO] [stdout]              `FsError` implements `From<TryReserveError>`
[INFO] [stdout]              `FsError` implements `From<std::io::Error>`
[INFO] [stdout]              `FsError` implements `From<std::string::String>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:40
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/show_dir_contents_history.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) fn show_dir_contents_history<P : AsRef<Path>>(path : P) -> FsResult<Vec<(String, usize)>>{
[INFO] [stdout]    | ---------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let name = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<(std::string::String, usize)>, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:45:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_simple_diff_files() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 45 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_nth.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/history2/create_file_history2.rs:13:48
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub(crate) fn create_file_history2(dir_path : &Path, hint_max_phase : Option<usize>) -> FsResult<FileHistory2>{
[INFO] [stdout]    | -------------------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let filename = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<FileHistory2, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_count.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:42:57
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn test_max_phase0() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let newest_path = history.newest_file_path(&dir)?;
[INFO] [stdout]    |                                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_max_phase0_with_cumu() -> FsResult<()> {
[INFO] [stdout]    | ---------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache,&op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:63:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 63 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ast_bool`, `ast_f64`, and `ast_string` are never used
[INFO] [stdout]   --> src/error.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) trait OptToErr{
[INFO] [stdout]    |                  -------- methods in this trait
[INFO] [stdout] 13 |     fn ast_i64(&self) -> Result<i64, &'static str>;
[INFO] [stdout] 14 |     fn ast_bool(&self) -> Result<bool, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 15 |     fn ast_f64(&self) -> Result<f64, &'static str>;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 16 |     fn ast_string(&self) -> Result<String, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_diff` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_src.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffSrc<V : DiffValue> : Clone{
[INFO] [stdout]   |                  ------- method in this trait
[INFO] [stdout] 5 |     fn create_diff(&self, from: &Self) -> FsResult<V>;
[INFO] [stdout] 6 |     fn apply_diff(&mut self, diff : V) -> FsResult<()>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read_value` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_value.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffValue : Sized{
[INFO] [stdout]   |                  --------- associated function in this trait
[INFO] [stdout] 5 |     fn read_value<R : Read>(read : &mut R) -> FsResult<Self>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn list_files(&self) -> Vec<HistoryFileData>{
[INFO] [stdout]    |                       ^^^^^         --------------- the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn list_files(&self) -> Vec<HistoryFileData<'_>>{
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn get_newest_file_data(&self) -> Option<HistoryFileData>{
[INFO] [stdout]    |                                 ^^^^^            --------------- the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn get_newest_file_data(&self) -> Option<HistoryFileData<'_>>{
[INFO] [stdout]    |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/remove/history_remover.rs:72:37
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn get_item_from_cue(&self, cue_order : &[u32], cue_order_last : Option<u32>) -> Option<&'a HistoryRemoverItem>{
[INFO] [stdout]    |                                     ^^^^^ the lifetime is elided here                                      ------------------ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn get_item_from_cue(&self, cue_order : &[u32], cue_order_last : Option<u32>) -> Option<&'a HistoryRemoverItem<'_>>{
[INFO] [stdout]    |                                                                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `docchi_fs` (lib test) due to 35 previous errors
[INFO] running `Command { std: "docker" "inspect" "0f8a8de41d7b01b1f4f13c0f69d1e234f6e1520b2ef2d6c1e3290cde2c0caedc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f8a8de41d7b01b1f4f13c0f69d1e234f6e1520b2ef2d6c1e3290cde2c0caedc", kill_on_drop: false }`
[INFO] [stdout] 0f8a8de41d7b01b1f4f13c0f69d1e234f6e1520b2ef2d6c1e3290cde2c0caedc
